import { AxiosTransformer } from '../types'

export default function transform(
  data: any,
  headers: any,
  fns?: AxiosTransformer | AxiosTransformer[]
): any {
  if (!fns) {
    return data
  }
  if (!Array.isArray(fns)) {
    fns = [fns]
  }
  fns.forEach(fn => {
    data = fn(data, headers)
  })
  return data
}

// 通用转换管道
// 请求阶段：将 { a: 1 } 转为 '{"a":1}'（配合 Content-Type 头）。
// 响应阶段：将 '{"a":1}' 转为 JavaScript 对象 { a: 1 }。